{{tag>systeme_de_fichiers}}
----
====== Le système de fichiers ext4 ======

Ext4 est une évolution du système de fichier ext3, qui est actuellement le système de fichier le plus utilisé sous Linux. Il présente de nombreux avantages et optimisations par rapport à l'ancienne version, tout en assurant une rétro-compatibilité. Ext4 vient d'être déclaré "stable", il est possible de l'utiliser dans la 9.04 et est le système de fichier par défaut sous 9.10 . 

Voir [[benchmark#systeme_de_fichier_ext_contre_les_autres|le benchmark des systèmes de fichier ext]].

<note help>
Si vous souhaitez tout de même l'utiliser sur une version plus ancienne, il vous faudra [[kernel_2.6.29|installer un autre kernel manuellement]] ou [[tutoriel/comment_compiler_un_kernel_de_kernel.org|compiler votre noyau vous même !]] (déconseillé pour l'utilisateur lambda)
</note>

===== Nouveautés =====

  * Ext4 a une option : **extents** qui permet de limiter grandement et automatiquement la fragmentation du système de fichiers.
  * Ext4 défragmente les fichiers en arrière-plan en utilisant les ressources disponibles.
  * Ext4 est nativement présent depuis la distribution Fedora 9 et son utilisation est considérée comme stable depuis la version 2.6.28 du noyau Linux.
  * Ext4 présente des performances en hausse par rapport à Ext3, ReiserFS 3 et XFS comme en témoigne ce bench de Phoronix [[http://www.phoronix.com/scan.php?page=article&item=ext4_benchmarks&num=1
]]

===== Prérequis pour migrer vers l'ext4 =====

  * Avoir le support de l'ext4 dans le noyau (Ubuntu Jaunty ou noyau compilé à la main)
  * e2fsprogs 1.41.x (Ubuntu Intrepid)
  * Grub2 SVN au moins daté du 13 Juillet 2008 (à moins que votre /boot ne soit en ext3) ou le grub de Ubuntu Jaunty
  * **Avoir fait une sauvegarde!**
  * Avoir déjà une partition ext3 avec une taille d'inodes de 256 octets (pour vérifier utilisez la commande **sudo tune2fs -l /dev/sda1|grep "Inode size"** ) (pensez à remplacer sda1 par la partition ext3 correspondante le cas échéant, dans la commande précédente)

//Dans mon cas, mon disk de données (/mount/disk/) avait des inodes de 128 octets, la conversion en ext4 avec la commande ci-dessous n'a pas posé de problème.//
Mais =>

http://ext4.wiki.kernel.org/index.php/Considerations_when_creating_ext3_filesystems#Inode_Size


===== Convertir une partition ext3 en ext4 =====

Si vous avez tout ceci de prêt, vous pouvez lancer un LiveCD style Ubuntu, PartedMagic ou démarrer en recovery mode et choisir l'option shell root sans réseau. Ensuite tapez la commande:

<code>tune2fs -O extents,uninit_bg,dir_index /dev/sda1
fsck -pf /dev/sda1</code>

En remplaçant **/dev/sda1** par votre partition ext3. N'oubliez pas de modifier le fichier **/etc/fstab** et de changer **ext3** par **ext4**. Notez que vous pouvez tout à fait le faire avant de convertir votre partition, le pilote **ext4** est compatible avec l'ext3.
N'oubliez pas de faire des sauvegardes! On ne vous le répétera jamais assez!
Une fois la partition root "/" convertie **réinstaller grub** :
<code>grub-install /dev/sda</code>


<note warning>Pour les **ordinateurs tatoués** et/ou qui s'[[http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_ntldr|amorcent en utilisant le ntldr]] :

Réinstaller le grub sur la partition où a été installé Ubuntu (par exemple, /dev/sda2), sinon, vous risquez de perdre le mbr.

Ne pas oublier de **recopier** le fichier d'amorce dans la partition windows avant de faire le reboot :
<code>sudo dd if=/dev/sdxY of=~/grub.bs bs=512 count=1</code>
où sdxY est la partition sur laquelle est installé Ubuntu.
<code>mkdir /media/windows
mount -t ntfs-3g /dev/sdwZ /media/windows</code>
où sdwZ est la partition sur laquelle est installée Windows.
<code>cp /media/windows/grub.bs /media/windows/grub.bs.bak
cp ~/grub.bs /media/windows/grub.bs
umount /dev/sdwZ</code>
</note>

====  Grub Error 13 / Grub Error 24  ====



Si lors d'un futur redémarrage une de ces erreurs apparaît :

<code>Error 13: Invalid or unsupported executable format</code>

ou

<code>Error 24: Cannot boot without kernel loaded</code>

Cela signifie que vous n'avez pas réinstallé grub après une conversion, ou que vous avez installé grub depuis une installation d'Intrepid qui a été ensuite mise à jour vers Jaunty. Dans les deux cas, grub ne reconnaît pas votre partition ext4. Redémarrez avec un Live CD de Jaunty et entrez ces commandes :

<code>mkdir /media/ubuntu
mount -t ext4 /dev/sda1 /media/ubuntu
mount -t proc proc /media/ubuntu/proc
mount -t sysfs sys /media/ubuntu/sys
mount -o bind /dev /media/ubuntu/dev
chroot /media/ubuntu
grub-install /dev/sda
</code>


<note tip>A faire aussi si vous avez des messages d'erreur lors de l'installation du grub.</note>

<note tip>Utilisez bien un Live CD de Jaunty, les versions de grub livrées avec les distributions antérieures ne gèrent pas l'ext4.</note>

===== Jaunty et problèmes =====

<note warning>A noter qu'il subsiste encore des bugs concernant **ext4 dans ubuntu 9.04 - Jaunty avec le kernel 2.6.28**, un connaisseur de 'linux' s'en sortira, mais pour l'instant il est déconseillé pour un 'user basic' de passer d'ext3 à ext4 avec les bugs mentionnés. Il est possible [[kernel_2.6.29|de passer au kernel 2.6.29 (suivre l'aide)]].( Bug : 2.6.28 Voir la [[http://www.ubuntu.com/getubuntu/releasenotes/904#Other%20known%20issues|Liste des bugs de Jaunty]], dont le [[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/330824|freeze de l'interface quand suppression de plusieurs fichiers]] dans des conditions spécifiques )</note>

===== Accessibilité depuis Windows =====

<note important>Il n'existe actuellement pas de driver permettant la lecture/écriture de partition ext4 depuis Windows. Si vous souhaitez accedez à vos partions linux depuis Windows, il est conseillé d'utiliser une partition ext3. [[tutoriel::comment_acceder_a_ses_partitions_d_ubuntu_sous_windows|Comment accéder à ses partitions d'Ubuntu sous Windows]].

 - Mars 2010 - </note>

===== Liens =====

  * La page officielle du projet ext4: [[http://ext4.wiki.kernel.org/index.php/Main_Page]]
  * Page wikipedia: [[wpfr>ext4]]

----
//Contributeurs: [[utilisateurs:Fabien26]] [[utilisateurs:Nicolarius]].//